package com.cy.pj.common.web;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cy.pj.common.vo.JsonResult;

/**
 * @ControllerAdvice 描述的类为全局异常处理类
 * 1)假如XxxController类的方法出现了异常,
 * 此异常没有try{}catch操作,而是继续抛出了,这个异常会抛出给controller
 * 方法调用者(DisptchaerSAervlet),此对象会检测抛出的controller类中
 * 是否有定义异常处理方法,这个方法能够处理抛出异常,
 * @author 11421
 * 全局异常
 *
 */
@ControllerAdvice
public class GlobalExceptionHandler {
	/**
	 * @ExceptionHandler 注解描述的方法为控制层的异常处理方法,此注解中
	 * 传入的异常类型,为它描述的方法
	 * @param e
	 * @return
	 */
	/*
	 * @ExceptionHandler(RuntimeException.class)
	 * 
	 * @ResponseBody public JsonResult doHandleRuntimeException(RuntimeException e)
	 * { System.out.println("GlobalExceptionHandler.doHandleRuntimeException");
	 * e.printStackTrace(); return new JsonResult(e); }
	 */
	@ExceptionHandler(RuntimeException.class)
	@ResponseBody
	public JsonResult doHandleRuntimeException(RuntimeException e) {
		System.out.println("GlobalExceptionHandler.doHandleRuntimeException");
		e.printStackTrace();
		return new JsonResult(e);
	}
}
